﻿Imports System
Imports System.Collections.Generic
Imports System.Workflow.ComponentModel

Namespace System.Workflow.Runtime.DebugEngine
    Public Interface IWorkflowDebugger
        ' Methods
        Sub ActivityStatusChanged(ByVal programId As Guid, ByVal scheduleTypeId As Guid, ByVal instanceId As Guid, ByVal activityQualifiedName As String, ByVal hierarchicalActivityId As String, ByVal status As ActivityExecutionStatus, ByVal stateReaderId As Integer)
        Sub AssemblyLoaded(ByVal programId As Guid, ByVal assemblyPath As String, ByVal fromGlobalAssemblyCache As Boolean)
        Sub BeforeActivityStatusChanged(ByVal programId As Guid, ByVal scheduleTypeId As Guid, ByVal instanceId As Guid, ByVal activityQualifiedName As String, ByVal hierarchicalActivityId As String, ByVal status As ActivityExecutionStatus, ByVal stateReaderId As Integer)
        Sub BeforeHandlerInvoked(ByVal programId As Guid, ByVal scheduleTypeId As Guid, ByVal activityQualifiedName As String, ByVal handlerMethod As ActivityHandlerDescriptor)
        Sub HandlerInvoked(ByVal programId As Guid, ByVal instanceId As Guid, ByVal threadId As Integer, ByVal activityQualifiedName As String)
        Sub InstanceCompleted(ByVal programId As Guid, ByVal instanceId As Guid)
        Sub InstanceCreated(ByVal programId As Guid, ByVal instanceId As Guid, ByVal scheduleTypeId As Guid)
        Sub InstanceDynamicallyUpdated(ByVal programId As Guid, ByVal instanceId As Guid, ByVal scheduleTypeId As Guid)
        Sub ScheduleTypeLoaded(ByVal programId As Guid, ByVal scheduleTypeId As Guid, ByVal assemblyFullName As String, ByVal fileName As String, ByVal md5Digest As String, ByVal isDynamic As Boolean, ByVal scheduleNamespace As String, ByVal scheduleName As String, ByVal workflowMarkup As String)
        Sub SetInitialActivityStatus(ByVal programId As Guid, ByVal scheduleTypeId As Guid, ByVal instanceId As Guid, ByVal activityQualifiedName As String, ByVal hierarchicalActivityId As String, ByVal status As ActivityExecutionStatus, ByVal stateReaderId As Integer)
        Sub UpdateHandlerMethodsForActivity(ByVal programId As Guid, ByVal scheduleTypeId As Guid, ByVal activityQualifiedName As String, ByVal handlerMethods As List([Of] ActivityHandlerDescriptor))
    End Interface
End Namespace

